home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / button12.lha / button9201.ps < prev    next >
Text File  |  1993-08-05  |  5KB  |  185 lines

  1. % button9201.ps - A GNU Button Program
  2. % Copyright 1992 Free Software Foundation
  3. % This program is free software; you can redistribute it and/or modify
  4. % it under the terms of the GNU General Public License as published by
  5. % the Free Software Foundation; either version 2, or (at your option)
  6. % any later version.
  7. %
  8. % This program is distributed in the hope that it will be useful,
  9. % but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. % GNU General Public License for more details.
  12. %
  13. % You should have received a copy of the GNU General Public License
  14. % along with this program; if not, write to the Free Software
  15. % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. % Hard copies of this button were first distributed at the January
  17. % 1992 San Francisco Usenix.  They had black lettering on a yellow
  18. % background on a standard 2 1/4" safety pin button.  They were
  19. % designed by Leonard H. Tower Jr. who is also the author of this GNU
  20. % Button Program.
  21. % Report bugs or improvements to: tower@prep.ai.mit.edu
  22. % Hard copies of this button are probably still available.  To get a
  23. % button, one must have either donated source code or documentation to
  24. % the GNU Project or make a donation of at least $ 2.00 for each button.
  25. % If you wish a hard copy of a gnu button send:
  26. %     - a self-addressed, stamped envelope; and
  27. %     - either:
  28. %         - a reminder of your source or documentation contribution; or
  29. %         - a donation payable to the "Free Software Foundation"; and
  30. %     - specify which of these different versions you wish:
  31. %         Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, Jan 91,
  32. %        Jun 91 and/or Jan 92
  33. % to:    L. Tower Jr.
  34. %     36 Porter Street,
  35. %    Somerville, MA  02143, USA
  36. % This program is available for anonymous ftp
  37. % prep.ai.mit.edu:/u2/emacs/button.N.MM.shar.  It is probably available
  38. % in other source archives.
  39.  
  40. erasepage
  41.  
  42. % debugging help
  43. %.so ehandler.ps
  44.  
  45. % uses {in,out}sidecircletext routines from Adobe Cookbook.
  46. .so circtext.ps
  47.  
  48. % center button on 8 1/2" x 11" page
  49. 306 396 translate
  50.  
  51. % This is a kludge to give better edge resolution.
  52. % Note that postscript's scale command doesn't cut it.
  53. % It scales after the edges are set.
  54. % biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger.
  55. % The master is reduced that much by the button manufacturer.
  56. % If only 1200 dpi postscript printers were more common ...
  57. /biggg 1 def
  58.  
  59. % useful for centering things
  60. /circleguide {
  61.   gsave
  62.   /radius 82 biggg mul def
  63.   .5 setlinewidth
  64.   newpath
  65.     0 0 radius 0 360 arc
  66.   stroke
  67.   grestore
  68. } def
  69.  
  70. %circleguide
  71.  
  72. gsave
  73.   % define the basic dimensions of the letters
  74.   % people are welcome to call this typeface:    hornart-deco
  75.   /tipangle 30 def
  76.   /gta 90 tipangle sub def    % g tip angle
  77.   /uta 90 tipangle add def    % u tip angle
  78.   /tiprad 4 biggg mul def
  79.   /hornrad 32 biggg mul def
  80.   /letsep 8 biggg mul def    
  81.   /letheight 28 biggg mul def
  82.   /letwidth 14 biggg mul def
  83.   /letrad 8 biggg mul def
  84.   /linewidth 4 biggg mul def
  85.  
  86.   linewidth setlinewidth
  87.   0 tiprad neg moveto    % roughly center
  88.   0 setgray
  89.   .1 setflat
  90.  
  91. % give us a G !
  92.   /letcenter letwidth letsep add neg def
  93.   1 setlinejoin
  94.   1 setlinecap   % wish there was a pointy default!
  95.  
  96.   newpath
  97.   letcenter hornrad tiprad add tiprad    270 gta    arc
  98.   stroke
  99.   1 setlinejoin
  100.   0 setlinecap
  101.   letcenter hornrad tiprad add tiprad    gta 270    arcn
  102.   stroke
  103.   newpath
  104.     0 setlinejoin
  105.     2 setlinecap
  106.   newpath
  107.   letcenter 0            hornrad  90 270    arc
  108.   currentpoint
  109.         letrad add        letrad    270   0 arc
  110.   0            letheight 2 div    rlineto
  111. %  letwidth 2 div neg    0        rlineto
  112.   /Helvetica-Narrow-Bold findfont linewidth 1.5 mul scalefont setfont
  113.   currentpoint
  114.   stroke
  115.   moveto
  116.   (THANX) stringwidth exch linewidth .6 mul add neg exch
  117.          2 mul linewidth .6 mul add neg rlineto
  118.   (THANX) show
  119.  
  120.  
  121. % give us a N !
  122.   newpath
  123.   letwidth 2 div neg     hornrad neg    moveto
  124.   0            letheight    rlineto
  125.   letwidth        letheight neg     rlineto
  126.   0            letheight    rlineto
  127.   currentpoint
  128.   stroke
  129.   moveto
  130.   linewidth .7 mul letheight linewidth 2 mul add neg rmoveto
  131.   ('s Not Unix) show
  132.  
  133. % give us a U !
  134.   /letcenter letcenter neg def
  135.   1 setlinejoin
  136.   1 setlinecap   % wish there was a pointy default!
  137.  
  138.   newpath
  139.   letcenter hornrad tiprad add tiprad    270 uta    arcn
  140.   stroke
  141.   1 setlinejoin
  142.   0 setlinecap
  143.   newpath
  144.   stroke
  145.   letcenter hornrad tiprad add tiprad    uta 270    arc
  146.   stroke
  147.     0 setlinejoin
  148.     2 setlinecap
  149.   newpath
  150.   letcenter 0            hornrad  90 270    arcn
  151.   currentpoint 
  152.         letrad add        letrad    270 180 arcn
  153.   0                letheight letrad sub    rlineto
  154.   currentpoint
  155.   stroke
  156.  
  157. % what does it spell?!?  GNU  !!
  158.  
  159. % now for the eye!
  160.   moveto
  161.   letwidth .8 mul letheight .4 mul neg rmoveto
  162.   /Courier-Oblique findfont 15 biggg mul scalefont setfont
  163.   (@) show
  164.  
  165. grestore
  166.  
  167. gsave
  168.   /Helvetica-Narrow-Bold findfont 5.75 biggg mul scalefont setfont
  169.  
  170.   (Copyright 1992 Free Software Foundation, Inc.)
  171.     7.5 biggg mul 270 73 biggg mul outsidecircletext
  172.   (Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.)
  173.     7.5 biggg mul 90 73 biggg mul outsidecircletext
  174.  
  175. grestore
  176. showpage
  177.